<template>
  <div class="custom-form">
    <el-row :gutter="15">
      <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" :key="showFormKey">
        <!-- 招待会议需求单 -->
        <el-col :span="24">
          <el-form-item label-width="0" prop="field1000041">
            <h2 align='center' style="color:undefined;font-size: nullpx;text-align: center">招待会议需求单</h2>
          </el-form-item>
        </el-col>
        <!-- 当前用户 -->
        <el-col :span="24" v-show="false">
          <el-form-item :label="$t('当前用户')" prop="current_user_id">
            <avue-information-body :operationVal="operationVal" infoType='user' :whetherToRebindSecondaryEditing='false'
              v-model="formData['current_user_id']" placeholder="用户当前当前用户"
              :disabled="hasDisabledPermission('current_user_id', true)"
              :readonly="!hasEditPermission('current_user_id', true)" :style="{ width: '100%' }">
            </avue-information-body>
          </el-form-item>
        </el-col>
        <!-- 职级名称 -->
        <el-col :span="24" v-show="false">
          <el-form-item :label="$t('职级名称')" prop="job">
            <el-input v-model="formData['job']" placeholder="请输入职级名称" :disabled="hasDisabledPermission('job', false)"
              :readonly="!hasEditPermission('job', false)" clearable :style="{ width: '100%' }"></el-input>
          </el-form-item>
        </el-col>
        <!-- 角色ID -->
        <el-col :span="24" v-show="false">
          <el-form-item :label="$t('角色ID')" prop="role_id">
            <el-input v-model="formData['role_id']" placeholder="请输入角色ID"
              :disabled="hasDisabledPermission('role_id', false)" :readonly="!hasEditPermission('role_id', false)"
              clearable :style="{ width: '100%' }">
            </el-input>
          </el-form-item>
        </el-col>
        <!-- 角色名称 -->
        <el-col :span="24" v-show="false">
          <el-form-item :label="$t('角色名称')" prop="role_name">
            <el-input v-model="formData['role_name']" placeholder="请输入角色名称"
              :disabled="hasDisabledPermission('role_name', false)" :readonly="!hasEditPermission('role_name', false)"
              clearable :style="{ width: '100%' }">
            </el-input>
          </el-form-item>
        </el-col>
        <!-- 地区 -->
        <el-col :span="24" v-show="false">
          <el-form-item :label="$t('地区')" prop="area">
            <el-input v-model="formData['area']" placeholder="请输入地区" :disabled="hasDisabledPermission('area', false)"
              :readonly="!hasEditPermission('area', false)" clearable :style="{ width: '100%' }"></el-input>
          </el-form-item>
        </el-col>
        <!-- 申请人ID -->
        <el-col :span="24" v-show="false">
          <el-form-item :label="$t('申请人ID')" prop="user_id">
            <el-input v-model="formData['user_id']" placeholder="请输入申请人ID"
              :disabled="hasDisabledPermission('user_id', false)" :readonly="!hasEditPermission('user_id', false)"
              clearable :style="{ width: '100%' }">
            </el-input>
          </el-form-item>
        </el-col>
        <!-- 申请时间 -->
        <el-col :span="24" v-show="false">
          <el-form-item :label="$t('申请时间')" prop="apply_time">
            <avue-information-body :operationVal="operationVal" infoType='date' :whetherToRebindSecondaryEditing='false'
              v-model="formData['apply_time']" placeholder="当前时间申请时间"
              :disabled="hasDisabledPermission('apply_time', true)" :readonly="!hasEditPermission('apply_time', true)"
              :style="{ width: '100%' }">
            </avue-information-body>
          </el-form-item>
        </el-col>
        <!-- 申请人名称 -->
        <el-col :span="24" >
          <el-form-item :label="$t('申请人名称')" prop="user_name">
            <el-input v-model="formData['user_name']" placeholder="请输入申请人名称"
              :disabled="hasDisabledPermission('user_name', false)" 
              :readonly="true"
              clearable :style="{ width: '100%' }">
            </el-input>
          </el-form-item>
        </el-col>
        <!-- 部门简称 -->
        <el-col :span="24" v-show="false">
          <el-form-item :label="$t('部门简称')" prop="depart_short_name">
            <el-input v-model="formData['depart_short_name']" placeholder="请输入部门简称"
              :disabled="hasDisabledPermission('depart_short_name', false)"
              :readonly="!hasEditPermission('depart_short_name', false)" clearable :style="{ width: '100%' }">
            </el-input>
          </el-form-item>
        </el-col>
        <!-- 部门ID -->
        <el-col :span="24">
          <el-form-item :label="$t('部门')" prop="depart_id">
            <el-select v-model="formData['depart_id']" placeholder="请选择部门ID"
              :disabled="hasDisabledPermission('depart_id', false)" @change="departmentChange" filterable clearable
              :style="{ width: '100%' }">
              <el-option v-for="(item, index) in departmentData" :key="index" :label="item.F_FullName"
                :value="item.F_DepartmentId" :disabled="item.disabled"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <!-- 是否生效 -->
        <el-col :span="24" v-show="false">
          <el-form-item :label="$t('是否生效')" prop="is_effective">
            <el-input v-model="formData['is_effective']" placeholder="请输入是否生效"
              :disabled="hasDisabledPermission('is_effective', false)"
              :readonly="!hasEditPermission('is_effective', false)" clearable :style="{ width: '100%' }">
            </el-input>
          </el-form-item>
        </el-col>
        <!-- 招待会议需求单部门 -->
        <el-col :span="24">
          <el-form-item :label="$t('招待会议需求单部门')" prop="meeting_depart_id">
            <!-- <avue-input-tree v-model="formData['meeting_depart_id']"
              :disabled="hasDisabledPermission('meeting_depart_id', false)" placeholder="系统默认(公司)招待会议需求单部门" type="tree"
              :dic="meeting_depart_idOptions" :style="{ width: '100%' }"></avue-input-tree> -->
              <SelectOnlyDepartment @sendData="sendData1" />
          </el-form-item>
        </el-col>
        <!-- 招待客户类型 -->
        <el-col :span="24">
          <el-form-item :label="$t('招待客户类型')" prop="customer_type">
            <el-select v-model="formData['customer_type']" placeholder="请选择招待客户类型"
              :disabled="hasDisabledPermission('customer_type', false)" filterable clearable :style="{ width: '100%' }">
              <el-option v-for="(item, index) in customer_typeOptions" :key="index" :label="item.F_ItemName"
                :value="item.F_ItemValue" :disabled="item.disabled"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <!-- 招待内容 -->
        <el-col :span="24">
          <el-form-item :label="$t('招待内容')" prop="customer_content">
            <el-select v-model="formData['customer_content']" placeholder="请选择招待内容"
              :disabled="hasDisabledPermission('customer_content', false)" filterable clearable
              @change="selectCustomer"
              :style="{ width: '100%' }">
              <el-option v-for="(item, index) in customer_contentOptions" :key="index" :label="item.F_ItemName"
                :value="item.F_ItemValue" :disabled="item.disabled"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <!-- 会议室预定 -->
        <el-col :span="24" v-show="flag1">
          <el-form-item :label="$t('会议室预定')" prop="meeting_room_reserve">
            <el-select v-model="formData['meeting_room_reserve']" placeholder="请选择会议室预定"
              :disabled="hasDisabledPermission('meeting_room_reserve', false)" filterable clearable
              :style="{ width: '100%' }">
              <el-option v-for="(item, index) in meeting_room_reserveOptions" :key="index" :label="item.F_ItemName"
                :value="item.F_ItemValue" :disabled="item.disabled"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <!-- 会议开始时间 -->
        <el-col :span="24" v-show="flag1">
          <el-form-item :label="$t('会议开始时间')" prop="meeting_start_time">
            <el-date-picker :disabled="hasDisabledPermission('meeting_start_time', false)"
              :readonly="!hasEditPermission('meeting_start_time', false)" v-model="formData['meeting_start_time']"
              format="yyyy-MM-dd" value-format="yyyy-MM-dd" :style="{ width: '100%' }" placeholder="请选择会议开始时间"
              :picker-options="pickerOptions0"
              @change="selectTime"
              clearable>
            </el-date-picker>
          </el-form-item>
        </el-col>
        <!-- 会议结束时间 -->
        <el-col :span="24" v-show="flag1">
          <el-form-item :label="$t('会议结束时间')" prop="meeting_end_time">
            <el-date-picker :disabled="hasDisabledPermission('meeting_end_time', false)"
              :readonly="!hasEditPermission('meeting_end_time', false)" v-model="formData['meeting_end_time']"
              format="yyyy-MM-dd" value-format="yyyy-MM-dd" :style="{ width: '100%' }" placeholder="请选择会议结束时间"
              @change="selectTime"
              :picker-options="pickerOptions1"
              clearable>
            </el-date-picker>
          </el-form-item>
        </el-col>
        <!-- 时长（天） -->
        <el-col :span="24" v-show="flag1">
          <el-form-item :label="$t('时长（天）')" prop="day">
            <el-input v-model="formData['day']" placeholder="请输入时长（天）" :disabled="hasDisabledPermission('day', false)"
              :readonly="!hasEditPermission('day', false)" clearable :style="{ width: '100%' }"></el-input>
          </el-form-item>
        </el-col>
        <!-- 会议需求 -->
        <el-col :span="24" v-show="flag1">
          <el-form-item :label="$t('会议需求')" prop="meeting_require">
            <el-select v-model="formData['meeting_require']" placeholder="请选择会议需求"
              :disabled="hasDisabledPermission('meeting_require', false)" filterable clearable
              :style="{ width: '100%' }">
              <el-option v-for="(item, index) in meeting_requireOptions" :key="index" :label="item.F_ItemName"
                :value="item.F_ItemValue" :disabled="item.disabled"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
       <!-- 就餐地点  -->
        <el-col :span="24" v-show="flag2">
          <el-form-item :label="$t('就餐地点')" prop="eat_address">
            <el-input v-model="formData['eat_address']" placeholder="请输入就餐地点"
              :disabled="hasDisabledPermission('eat_address', false)"
              :readonly="!hasEditPermission('eat_address', false)" clearable :style="{ width: '100%' }">
            </el-input>
          </el-form-item>
        </el-col>
        <!-- 饭店选择 -->
        <el-col :span="24" v-show="flag2">
          <el-form-item :label="$t('饭店选择')" prop="restaurant">
            <el-select v-model="formData['restaurant']" placeholder="请选择饭店选择"
            @change="selectFanD"
              :disabled="hasDisabledPermission('restaurant', false)" filterable clearable :style="{ width: '100%' }">
              <el-option v-for="(item, index) in restaurantOptions" :key="index" :label="item.F_ItemName"
                :value="item.F_ItemValue" :disabled="item.disabled"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <!-- 其他饭店 -->
        <el-col :span="24" v-show="flag2 && flag112">
          <el-form-item :label="$t('其他饭店')" prop="other_restaurant">
            <el-input v-model="formData['other_restaurant']" placeholder="请输入其他饭店"
              :disabled="hasDisabledPermission('other_restaurant', false)"
              :readonly="!hasEditPermission('other_restaurant', false)" clearable :style="{ width: '100%' }"></el-input>
          </el-form-item>
        </el-col>
        <!-- 就餐开始时间 -->
        <el-col :span="24" v-show="flag2">
          <el-form-item :label="$t('就餐开始时间')" prop="eat_start_time">
            <el-date-picker :disabled="hasDisabledPermission('eat_start_time', false)"
              :readonly="!hasEditPermission('eat_start_time', false)" type="datetime"
              v-model="formData['eat_start_time']" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
              :picker-options="pickerOptions2"
              :style="{ width: '100%' }" placeholder="请选择就餐开始时间" clearable>
            </el-date-picker>
          </el-form-item>
        </el-col>
        <!-- 就餐结束时间 -->
        <el-col :span="24" v-show="flag2">
          <el-form-item :label="$t('就餐结束时间')" prop="eat_end_time">
            <el-date-picker :disabled="hasDisabledPermission('eat_end_time', false)"
              :readonly="!hasEditPermission('eat_end_time', false)" v-model="formData['eat_end_time']"
              format="yyyy-MM-dd" value-format="yyyy-MM-dd" :style="{ width: '100%' }" placeholder="请选择就餐结束时间"
              :picker-options="pickerOptions3"
              clearable>
            </el-date-picker>
          </el-form-item>
        </el-col>
        <!-- 出席人员 -->
        <el-col :span="24" v-show="flag2">
          <el-form-item :label="$t('出席人数')" prop="eat_count">
            <el-input v-model.number="formData['eat_count']" placeholder="请输入出席人数"
              :disabled="hasDisabledPermission('eat_count', false)" :readonly="!hasEditPermission('eat_count', false)"
              clearable :style="{ width: '100%' }">
            </el-input>
          </el-form-item>
        </el-col>
        <!-- 招待等级 -->
        <el-col :span="24" v-show="flag2">
          <el-form-item :label="$t('招待等级')" prop="restaurant_level">
            <el-select v-model="formData['restaurant_level']" placeholder="请选择招待等级"
              :disabled="hasDisabledPermission('restaurant_level', false)" filterable clearable
              :style="{ width: '100%' }">
              <el-option v-for="(item, index) in restaurant_levelOptions" :key="index" :label="item.F_ItemName"
                :value="item.F_ItemValue" :disabled="item.disabled"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <!-- 住宿需求 -->
        <el-col :span="24" v-show="flag3">
          <el-form-item :label="$t('住宿需求')" prop="hotel_require">
            <el-input v-model="formData['hotel_require']" placeholder="请输入住宿需求"
              :disabled="hasDisabledPermission('hotel_require', false)"
              :readonly="!hasEditPermission('hotel_require', false)" clearable :style="{ width: '100%' }">
            </el-input>
          </el-form-item>
        </el-col>
        <!-- 其他需求 -->
        <el-col :span="24" v-show="flag4">
          <el-form-item :label="$t('其他需求')" prop="other_require">
            <el-input v-model="formData['other_require']" placeholder="请输入其他需求"
              :disabled="hasDisabledPermission('other_require', false)"
              :readonly="!hasEditPermission('other_require', false)" clearable :style="{ width: '100%' }">
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="24" v-show="optionsFlag">
          <el-form-item :label="$t('意见簿')" prop="field123b3c7" >
            <xjr-opinion-comonent :value="formData.field123b3c7"></xjr-opinion-comonent>
          </el-form-item>
        </el-col>
        <el-col :span="24" v-if="!isWorkflowForm">
          <el-form-item size="large" v-if="isEdit">
            <el-button type="primary" @click="submitForm" :loading="submitLoading">
              {{ submitLoading ? $t('workFlow.WFMenu.hintSubmit') : $t('submit') }}</el-button>
            <el-button @click="cancelForm">{{ $t('cancelText') }}</el-button>
          </el-form-item>
        </el-col>
      </el-form>
    </el-row>
  </div>
</template>
<script>

import FilterableDataList from '@/components/generator/clientComponents/FilterableDataList.vue';
import workflowFormAuthorize from "@/mixins/workflowFormAuthorize";
import authorizeMixin from "@/mixins/authorize";
import { baseUrl } from "@/config/env";
import request from "@/router/axios";
import SelectOnlyDepartment from '@/components/staffSelector/selectOnlyDepartment.vue'
import { getUserDetailsById } from '@/api/user.js';
export default {
  mixins: [authorizeMixin, workflowFormAuthorize],

  components: {SelectOnlyDepartment},
  props: ['keyValue', 'isEdit', 'disabled'],
  data() {
    let _this = this
    return {
      submitLoading: false,
      showForm: true,
      showFormKey: 1,
      reRenderSubform: false,
      operationVal: 'add',
      isAdd: true,
      addressUrl: 'meetrequire',
      mainTableName: 'reception_meeting',
      formConfig: {},
      formData: {
        'field1000041': '',
        'current_user_id': '',
        'job': '',
        'role_id': '',
        'role_name': '',
        'area': '',
        'user_id': '',
        'apply_time': '',
        'user_name': '',
        'depart_short_name': '',
        'depart_id': '',
        'is_effective': '0',
        'meeting_depart_id': '',
        'customer_type': '',
        'customer_content': '',
        'meeting_room_reserve': '',
        'meeting_start_time': null,
        'meeting_end_time': null,
        'day': '',
        'meeting_require': '',
        'eat_address': '',
        'restaurant': '',
        'other_restaurant': '',
        'eat_start_time': null,
        'eat_end_time': null,
        'eat_count': '',
        'restaurant_level': '',
        'hotel_require': '',
        'other_require': '',
        'field123b3c7': null,
      },
      pickerOptions0:{
        disabledDate: (time) => {
              return time.getTime() < Date.now() - 8.64e7
          }
      },
      pickerOptions1: {
        disabledDate: (time) => {
          let beginDateVal = new Date(this.formData['meeting_start_time']).getTime()
          if (beginDateVal) { // 等于的时候是临界值00:00:00
            return (time.getTime()) <= beginDateVal - 8.64e7
          } else {
            return time.getTime() < Date.now() - 8.64e7 
          }
        }
      },
      pickerOptions2:{
        disabledDate: (time) => {
              return time.getTime() < Date.now() - 8.64e7
          }

      },
      pickerOptions3: {
        disabledDate: (time) => {
          let beginDateVal = new Date(this.formData['eat_start_time']).getTime()
          if (beginDateVal) { // 等于的时候是临界值00:00:00
            return (time.getTime()) <= beginDateVal - 8.64e7
          } else {
            return time.getTime() < Date.now() - 8.64e7 
          }
        }
      },
      rules: {
        job: [{
          required: true,
          message: '请输入职级名称',
          trigger: 'blur'
        }],
        role_id: [{
          required: true,
          message: '请输入角色ID',
          trigger: 'blur'
        }],
        role_name: [{
          required: true,
          message: '请输入角色名称',
          trigger: 'blur'
        }],
        area: [{
          required: true,
          message: '请输入地区',
          trigger: 'blur'
        }],
        user_id: [{
          required: true,
          message: '请输入申请人ID',
          trigger: 'blur'
        }],
        user_name: [{
          required: true,
          message: '请输入申请人名称',
          trigger: 'blur'
        }],
        depart_short_name: [{
          required: true,
          message: '请输入部门简称',
          trigger: 'blur'
        }],
        depart_id: [{
          required: true,
          message: '请选择部门ID',
          trigger: 'change'
        }],
        is_effective: [{
          required: true,
          message: '请选择是否生效',
          trigger: 'blur'
        }],
        meeting_depart_id: [{
          required: true,
          message: '请选择部门',
          trigger: 'change'
        }],
        customer_type: [],
        customer_content: [],
        meeting_room_reserve: [],
        meeting_start_time: [],
        meeting_end_time: [],
        day: [],
        meeting_require: [],
        eat_address: [],
        restaurant: [],
        other_restaurant: [],
        eat_start_time: [],
        eat_end_time: [],
        eat_count: [{
          required: true,
          message: '请输入出席会议人数',
          trigger: 'change'
        }],
        restaurant_level: [],
        hotel_require: [],
        other_require: [],
      },
      departmentData: [],//部门信息
      roleData: [],//角色信息
      meeting_depart_idOptions: undefined,
      customer_typeOptions: [],
      customer_contentOptions: [],
      meeting_room_reserveOptions: [],
      meeting_requireOptions: [],
      restaurantOptions: [],
      restaurant_levelOptions: [],
      flag1:false,
      flag2:false,
      flag3:false,
      flag4:false,
      flag112:false
    }
  },
  computed: {},
  watch: {},
  created() {
    this.formConfig = this.getFormConfig();
  },
  async mounted() {
    //TODO   再这里做数据回填 请求表单数据
    if (this.keyValue) {
      this.isAdd = false;
    }
    if (!this.isAdd && this.keyValue) {
      this.operationVal = 'edit';
      try {
        let res = await request({
          url: baseUrl + "/" + this.addressUrl + "/" + this.keyValue,
          method: "get",
        });

        this.formData = res.data.data

        this.showFormKey++;
      } catch (error) {
      }
    }
    if (typeof this.getMeeting_depart_idOptions == "function") {
      await this.getMeeting_depart_idOptions();
    }
    if (typeof this.getCustomer_typeOptions == "function") {
      await this.getCustomer_typeOptions();
    }
    if (typeof this.getCustomer_contentOptions == "function") {
      await this.getCustomer_contentOptions();
    }
    if (typeof this.getMeeting_room_reserveOptions == "function") {
      await this.getMeeting_room_reserveOptions();
    }
    if (typeof this.getMeeting_requireOptions == "function") {
      await this.getMeeting_requireOptions();
    }
    if (typeof this.getRestaurantOptions == "function") {
      await this.getRestaurantOptions();
    }
    if (typeof this.getRestaurant_levelOptions == "function") {
      await this.getRestaurant_levelOptions();
    }
    // 新增时获取信息表单反选
    setTimeout(() => {
      this.getCurrentInfo()
    }, 0);
  },
  methods: {
    
    selectCustomer(){
      if(this.formData['customer_content'] == 1){
        this.flag1 = true
      }else{
        this.flag1 = false
      }

      if((this.formData['customer_content'] == 2) || (this.formData['customer_content'] == 3)){
        this.flag2 = true
      }else{
        this.flag2 = false
      }

      if(this.formData['customer_content'] == 5){
        this.flag3 = true
      }else{
        this.flag3 = false
      }
      if(this.formData['customer_content'] == 6){
        this.flag4 = true
      }else{
        this.flag4 = false
      }
      
    },
    getCurrentInfo() {
      let params = {
        userId: this.formData['current_user_id']
      }
      getUserDetailsById(params).then(res => {
        this.formData['user_id'] = res.data.data.F_UserId//当前申请人id
        this.formData['user_name'] = res.data.data.F_RealName//当前申请人姓名
        this.formData['area'] = res.data.data.F_Area//地区
        this.formData['job'] = res.data.data.F_Job//职级
        this.departmentData = res.data.data.F_Department//部门信息
        this.roleData = res.data.data.F_Role//角色信息
        this.initRole()
        this.initDepartmentData()
      })
    },
    initDepartmentData(){
      if(this.departmentData && this.departmentData.length == 1){
        this.formData['depart_short_name'] = this.departmentData[0].F_FullName
        this.formData['depart_id'] = this.departmentData[0].F_DepartmentId
      }
    },
    initRole() {
      let roleId = []
      let roleName = []
      if (this.roleData && this.roleData.length > 0) {
        this.roleData.forEach(e => {
          roleId.push(e.F_RoleId)
          roleName.push(e.F_FullName)
        })
      }
      this.formData['role_id'] = roleId.join(',')
      this.formData['role_name'] = roleName.join(',')
    },
    // 部门选择
    departmentChange(val) {
      this.departmentData.forEach(ele => {
        if (val == ele.F_DepartmentId) {
          this.formData['depart_short_name'] = ele.F_FullName
        }
      })
    },
    getFormData() {
      let key = this.mainTableName + 'Entity';
      let returnParams = {};
      returnParams[key] = this.formData;
      return {
        ...returnParams,
      };
    },
    validateForm() {
      this.$refs['elForm'].validate(valid => { });
    },
    async aysncValidateForm() {
      let validataArry = []
      validataArry.push(new Promise((resolve, reject) => {
        this.$refs['elForm'].validate(valid => {
          resolve(valid)
        })
      }))
      let res = await Promise.all(validataArry)
      if (res.includes(false)) {
        return false
      }
      else {
        return true;
      }
    },
    selectFanD(){
      if(this.formData['restaurant'] == 5){
        this.flag112 = true
      }else{
        this.flag112 = false
      }
    },
     sendData1(value){
        this.formData['meeting_depart_id'] = value
      },
    changeTableData() { },
    async submitForm() {
      this.submitLoading = true;
      let valid = await this.aysncValidateForm();
      if (valid == false) {
        this.submitLoading = false;
        return false;
      }
      this.changeTableData();
      //格式化数据
      let newObj = this.getFormData();

      //如果没有传入参数就是新增
      if (!this.keyValue) {

        request({
          url: baseUrl + "/" + this.addressUrl,
          method: "post",
          data: newObj
        }).then((res) => {
          this.submitLoading = false;
          this.$notify({
            title: "成功",
            message: "新增成功",
            type: "success",
          });
          this.$emit("onChange", true)
        });

      }
      else {

        request({
          url: baseUrl + "/" + this.addressUrl + "/" + this.keyValue,
          method: "put",
          data: newObj
        }).then((res) => {
          this.submitLoading = false;
          this.$notify({
            title: "成功",
            message: "修改成功",
            type: "success",
          });
          this.$emit("onChange", true)
        });

      }



    },
    cancelForm() {
      this.$emit("onChange", true)
    },
    formatTree(data, valueField, lableField, childField, type) {
      let tree = [];
      data.forEach((node, index) => {
        let newNode = {
          value: node[valueField],
          label: node[lableField],
        };
        if (type) {
          newNode.disabled = node[valueField] == undefined ? true : false
        }
        tree.push(newNode);
        if (node[childField] != null && node[childField].length > 0) {
          newNode.children = (this.formatTree(node[childField], valueField, lableField, childField,
            type));
        }
      }, this);
      return tree;
    },

    //辅助工作流 审批(编辑) 预留方法
    handleEdit() {
    },

    async getMeeting_depart_idOptions() {
      // 注意：this.$axios是通过Vue.prototype.$axios = axios挂载产生的
      try {
        let resp = await this.$axios({
          method: 'get',
          url: baseUrl + '/companies/departments/tree',
        });
        if (resp.data) {
          let {
            data
          } = resp.data
          this.meeting_depart_idOptions = this.formatTree(data, 'F_DepartmentId', 'F_FullName', 'children',
            1);
        }
      }
      catch (error) { }
    },
    async getCustomer_typeOptions() {
      // 注意：this.$axios是通过Vue.prototype.$axios = axios挂载产生的
      try {
        let resp = await this.$axios({
          method: 'get',
          url: baseUrl + '/data-items/khlx/detail',
        });
        if (resp.data.data) {
          this.customer_typeOptions = resp.data.data;
        }
      }
      catch (error) { }
    },
    selectTime(){
      if(this.formData['meeting_start_time'] && this.formData['meeting_end_time']){
        console.log(new Date(this.formData['meeting_start_time']).getTime());
        console.log(new Date(this.formData['meeting_end_time']).getTime());
        
      }
      
      
    },
    async getCustomer_contentOptions() {
      // 注意：this.$axios是通过Vue.prototype.$axios = axios挂载产生的
      try {
        let resp = await this.$axios({
          method: 'get',
          url: baseUrl + '/data-items/zdnr/detail',
        });
        if (resp.data.data) {
          this.customer_contentOptions = resp.data.data;
        }
      }
      catch (error) { }
    },
    async getMeeting_room_reserveOptions() {
      // 注意：this.$axios是通过Vue.prototype.$axios = axios挂载产生的
      try {
        let resp = await this.$axios({
          method: 'get',
          url: baseUrl + '/data-items/hysyd/detail',
        });
        if (resp.data.data) {
          this.meeting_room_reserveOptions = resp.data.data;
        }
      }
      catch (error) { }
    },
    async getMeeting_requireOptions() {
      // 注意：this.$axios是通过Vue.prototype.$axios = axios挂载产生的
      try {
        let resp = await this.$axios({
          method: 'get',
          url: baseUrl + '/data-items/hyxq/detail',
        });
        if (resp.data.data) {
          this.meeting_requireOptions = resp.data.data;
        }
      }
      catch (error) { }
    },
    async getRestaurantOptions() {
      // 注意：this.$axios是通过Vue.prototype.$axios = axios挂载产生的
      try {
        let resp = await this.$axios({
          method: 'get',
          url: baseUrl + '/data-items/fdxz/detail',
        });
        if (resp.data.data) {
          this.restaurantOptions = resp.data.data;
        }
      }
      catch (error) { }
    },
    async getRestaurant_levelOptions() {
      // 注意：this.$axios是通过Vue.prototype.$axios = axios挂载产生的
      try {
        let resp = await this.$axios({
          method: 'get',
          url: baseUrl + '/data-items/zddj/detail',
        });
        if (resp.data.data) {
          this.restaurant_levelOptions = resp.data.data;
        }
      }
      catch (error) { }
    },
    //子表单权限
    getAuthorityTableChildrenList(bindTable, children) {
      let column = [];
      if (bindTable && this.formEnCodeList && this.formEnCodeList[bindTable]) {
        let formSubEnCodeList = this.formEnCodeList[bindTable];
        if (children && children.length > 0) {
          column = children.map(ele2 => {
            if (formSubEnCodeList.includes(ele2.prop)) {
              ele2.hide = false;
            }
            else {
              ele2.hide = true;
            }
            if (ele2.hide == false) {
              //工作流中系统表单必填权限
              if (this.formSubTableNotRequiredList[bindTable] != undefined) {
                if (this.formSubTableNotRequiredList[bindTable].includes(ele2.prop)) {
                  ele2.required = false;
                }
                else {
                  ele2.required = true;
                }
              }
              ele2.rules = [];
              if (ele2.required) {
                ele2.rules = ele2.ruleList;
              }
              // disabled 属性
              if (this.formSubTableDisabledList[bindTable] != undefined) {
                if (this.formSubTableDisabledList[bindTable].includes(ele2.prop)) {
                  ele2.disabled = true;
                }
                else {
                  ele2.disabled = false;
                }
              }
            }
            return ele2;
          });
        }
        return column;
      }
      else {
        return children;
      }
    },
    getFormConfig() {
      let config = {
        "fields": [{
          "__vModel__": "field1000041",
          "__config__": {
            "label": "招待会议需求单",
            "showLabel": false,
            "titleColor": null,
            "fontSize": null,
            "tag": "h2",
            "span": 24,
            "align": "top",
            "justify": "start",
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 100
          }
        }, {
          "__vModel__": "current_user_id",
          "__type__": "info",
          "infoType": "user",
          "__organize__": true,
          "__config__": {
            "label": "当前用户",
            "showLabel": true,
            "tag": "avue-information-body",
            "avueType": "information-body",
            "defaultValue": "316231f32f1f0e5a4c56bf855806b924",
            "required": false,
            "span": 24,
            "whetherToRebindSecondaryEditing": false,
            "bindTableField": "current_user_id",
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 102,
            "placeholder": "当前用户",
            "fieldLength": "50",
            "bindTable": "reception_meeting",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "job",
          "__config__": {
            "label": "职级名称",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": true,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 103,
            "fieldLength": "50",
            "bindTable": "reception_meeting",
            "bindTableField": "job",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "role_id",
          "__config__": {
            "label": "角色ID",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": true,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 104,
            "fieldLength": 500,
            "bindTable": "reception_meeting",
            "bindTableField": "role_id",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "role_name",
          "__config__": {
            "label": "角色名称",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": true,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 105,
            "fieldLength": 500,
            "bindTable": "reception_meeting",
            "bindTableField": "role_name",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "area",
          "__config__": {
            "label": "地区",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": true,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 106,
            "fieldLength": "50",
            "bindTable": "reception_meeting",
            "bindTableField": "area",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "user_id",
          "__config__": {
            "label": "申请人ID",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": true,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 107,
            "fieldLength": "50",
            "bindTable": "reception_meeting",
            "bindTableField": "user_id",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "apply_time",
          "__type__": "info",
          "infoType": "date",
          "__organize__": true,
          "__config__": {
            "label": "申请时间",
            "showLabel": true,
            "tag": "avue-information-body",
            "avueType": "information-body",
            "defaultValue": "2022-07-06 18:41:50",
            "required": false,
            "span": 24,
            "whetherToRebindSecondaryEditing": false,
            "bindTableField": "apply_time",
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 108,
            "placeholder": "当前时间",
            "fieldLength": 500,
            "bindTable": "reception_meeting",
            "bindTableFieldType": "datetime"
          }
        }, {
          "__vModel__": "user_name",
          "__config__": {
            "label": "申请人名称",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": true,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 109,
            "fieldLength": "50",
            "bindTable": "reception_meeting",
            "bindTableField": "user_name",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "depart_short_name",
          "__config__": {
            "label": "部门简称",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": true,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 110,
            "fieldLength": "50",
            "bindTable": "reception_meeting",
            "bindTableField": "depart_short_name",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "depart_id",
          "__config__": {
            "label": "部门ID",
            "showLabel": true,
            "tag": "el-select",
            "avueType": "select",
            "span": 24,
            "required": true,
            "saveField": "",
            "showField": "",
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 111,
            "fieldLength": "50",
            "bindTable": "reception_meeting",
            "bindTableField": "depart_id",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "is_effective",
          "__config__": {
            "label": "是否生效",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": true,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 113,
            "fieldLength": "1",
            "bindTable": "reception_meeting",
            "bindTableField": "is_effective",
            "bindTableFieldType": "int"
          }
        }, {
          "tempType": "tree",
          "__vModel__": "meeting_depart_id",
          "__type__": "department",
          "__organize__": true,
          "__config__": {
            "label": "招待会议需求单部门",
            "showLabel": true,
            "required": false,
            "tag": "avue-input-tree",
            "dataKey": "data",
            "span": 24,
            "bindTableField": "meeting_depart_id",
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 114,
            "fieldLength": "50",
            "bindTable": "reception_meeting",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "customer_type",
          "__config__": {
            "label": "招待客户类型",
            "showLabel": true,
            "tag": "el-select",
            "avueType": "select",
            "span": 24,
            "required": false,
            "saveField": "",
            "showField": "",
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 115,
            "dataType": "dataItem",
            "dataItem": "khlx",
            "fieldLength": "10",
            "bindTable": "reception_meeting",
            "bindTableField": "customer_type",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "customer_content",
          "__config__": {
            "label": "招待内容",
            "showLabel": true,
            "tag": "el-select",
            "avueType": "select",
            "span": 24,
            "required": false,
            "saveField": "",
            "showField": "",
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 116,
            "dataType": "dataItem",
            "dataItem": "zdnr",
            "fieldLength": "10",
            "bindTable": "reception_meeting",
            "bindTableField": "customer_content",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "meeting_room_reserve",
          "__config__": {
            "label": "会议室预定",
            "showLabel": true,
            "tag": "el-select",
            "avueType": "select",
            "span": 24,
            "required": false,
            "saveField": "",
            "showField": "",
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 118,
            "fieldLength": "10",
            "bindTable": "reception_meeting",
            "bindTableField": "meeting_room_reserve",
            "bindTableFieldType": "varchar",
            "dataType": "dataItem",
            "dataItem": "hysyd"
          }
        }, {
          "tempType": "date",
          "__vModel__": "meeting_start_time",
          "__config__": {
            "label": "会议开始时间",
            "tag": "el-date-picker",
            "avueType": "datetime",
            "defaultValue": null,
            "showLabel": true,
            "span": 24,
            "required": false,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 119,
            "fieldLength": 500,
            "bindTableFieldType": "datetime",
            "bindTable": "reception_meeting",
            "bindTableField": "meeting_start_time"
          }
        }, {
          "tempType": "date",
          "__vModel__": "meeting_end_time",
          "__config__": {
            "label": "会议结束时间",
            "tag": "el-date-picker",
            "avueType": "datetime",
            "defaultValue": null,
            "showLabel": true,
            "span": 24,
            "required": false,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 120,
            "fieldLength": 500,
            "bindTableFieldType": "datetime",
            "bindTable": "reception_meeting",
            "bindTableField": "meeting_end_time"
          }
        }, {
          "__vModel__": "day",
          "__config__": {
            "label": "时长（天）",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": false,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 121,
            "fieldLength": 500,
            "bindTable": "reception_meeting",
            "bindTableField": "day",
            "bindTableFieldType": "double"
          }
        }, {
          "__vModel__": "meeting_require",
          "__config__": {
            "label": "会议需求",
            "showLabel": true,
            "tag": "el-select",
            "avueType": "select",
            "span": 24,
            "required": false,
            "saveField": "",
            "showField": "",
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 122,
            "dataType": "dataItem",
            "dataItem": "hyxq",
            "fieldLength": "10",
            "bindTable": "reception_meeting",
            "bindTableField": "meeting_require",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "eat_address",
          "__config__": {
            "label": "就餐地点",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": false,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 125,
            "fieldLength": 500,
            "bindTable": "reception_meeting",
            "bindTableField": "eat_address",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "restaurant",
          "__config__": {
            "label": "饭店选择",
            "showLabel": true,
            "tag": "el-select",
            "avueType": "select",
            "span": 24,
            "required": false,
            "saveField": "",
            "showField": "",
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 128,
            "dataType": "dataItem",
            "dataItem": "fdxz",
            "fieldLength": 500,
            "bindTable": "reception_meeting",
            "bindTableField": "restaurant",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "other_restaurant",
          "__config__": {
            "label": "其他饭店",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": false,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 129,
            "fieldLength": 500,
            "bindTable": "reception_meeting",
            "bindTableField": "other_restaurant",
            "bindTableFieldType": "varchar"
          }
        }, {
          "tempType": "datetime",
          "__vModel__": "eat_start_time",
          "__config__": {
            "label": "就餐开始时间",
            "tag": "el-date-picker",
            "avueType": "datetime",
            "defaultValue": null,
            "showLabel": true,
            "span": 24,
            "required": false,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 130,
            "fieldLength": 500,
            "bindTableFieldType": "datetime",
            "bindTable": "reception_meeting",
            "bindTableField": "eat_start_time"
          }
        }, {
          "tempType": "date",
          "__vModel__": "eat_end_time",
          "__config__": {
            "label": "就餐结束时间",
            "tag": "el-date-picker",
            "avueType": "datetime",
            "defaultValue": null,
            "showLabel": true,
            "span": 24,
            "required": false,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 131,
            "fieldLength": 500,
            "bindTableFieldType": "datetime",
            "bindTable": "reception_meeting",
            "bindTableField": "eat_end_time"
          }
        }, {
          "__vModel__": "eat_count",
          "__config__": {
            "label": "出席人员",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": false,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 132,
            "fieldLength": "20",
            "bindTable": "reception_meeting",
            "bindTableField": "eat_count",
            "bindTableFieldType": "int"
          }
        }, {
          "__vModel__": "restaurant_level",
          "__config__": {
            "label": "招待等级",
            "showLabel": true,
            "tag": "el-select",
            "avueType": "select",
            "span": 24,
            "required": false,
            "saveField": "",
            "showField": "",
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 133,
            "dataType": "dataItem",
            "dataItem": "zddj",
            "fieldLength": "10",
            "bindTable": "reception_meeting",
            "bindTableField": "restaurant_level",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "hotel_require",
          "__config__": {
            "label": "住宿需求",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": false,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 134,
            "fieldLength": 500,
            "bindTable": "reception_meeting",
            "bindTableField": "hotel_require",
            "bindTableFieldType": "varchar"
          }
        }, {
          "__vModel__": "other_require",
          "__config__": {
            "label": "其他需求",
            "showLabel": true,
            "tag": "el-input",
            "avueType": "input-tip",
            "required": false,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 135,
            "fieldLength": 500,
            "bindTable": "reception_meeting",
            "bindTableField": "other_require",
            "bindTableFieldType": "varchar"
          }
        }, {
          "tempType": "textarea",
          "__vModel__": "field123b3c7",
          "__type__": "opinion",
          "__config__": {
            "label": "意见簿",
            "showLabel": true,
            "tag": "xjr-opinion-comonent",
            "defaultValue": null,
            "span": 24,
            "F_LgMarkCode": "",
            "prestrainField": "",
            "formId": 123
          }
        }]
      };
      return config;
    },
  }
}

</script>
<style>
.el-table__empty-block {
  width: 100% !important;
}

.avue-form__row {
  padding: 0 !important;
}

#editorphone {
  width: 375px;
  margin: 0 auto;
  border: 1px solid #E4E7ED;
  padding: 0 7.5px;
  background: #f5f6fa;
  height: 700px;
  overflow-y: auto;
  overflow-x: hidden;
  border-radius: 5px;
}

#editorphone .el-col {
  border-bottom: 1px solid #F2F2F2;
  background: #fff;
  margin-bottom: 0;
  padding: 0 15px 6px !important;
  width: 100%;
}

#editorphone .el-form-item__label {
  line-height: 20px
}

#editorphone .el-input-group .el-input__inner {
  background: #f5f6fa
}

#editorphone .el-input__inner {
  border: 0
}

#editorphone .el-input-group__append,
#editorphone .el-input-group__prepend {
  border: 0;
  background: #edeef2;
  color: #666;
}

#editorphone .el-input-group .el-input__prefix {
  left: 44px
}

#editorphone .el-input-group .el-input__suffix {
  right: 44px
}

#editorphone .el-form-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-flow: wrap;
}

#editorphone .el-form-item__label {
  float: none;
  min-width: 85px;
  width: auto !important;
  text-align: left;
  flex: auto;
}

#editorphone .tinymce .el-form-item__label {
  min-width: 100%;
}

#editorphone .el-form-item__content {
  margin-left: 0px !important;
  flex: auto;
  width: calc(100% - 95px);
}

#editorphone .avueFormNoLable .el-form-item__label,
#editorphone .avueFormNoLable .avue-crud__pagination {
  display: none;
}

#editorphone .avueFormNoLable .el-collapse-item__wrap,
#editorphone .avueFormNoLable .el-collapse {
  border-bottom: 0
}

#editorphone .avueFormNoLable .el-col {
  border-bottom: 0;
  padding-bottom: 0
}

#editorphone .el-form-item__content .el-button:first-child {
  margin-left: 90px;
}
</style>
